package com.durian.base.update.proxy

import com.durian.base.update.entity.DownloadEntity
import com.durian.base.update.entity.VersionEntity
import com.durian.base.update.entity.XUpdateException

interface IUpdateListener {
    /**
     * 检查更新请求前调用
     */
    fun doCheckUpdateBefore()
    /**
     * 检查更新请求后调用
     */
    fun doCheckUpdateAfter()
    /**
     * 检查更新错误
     */
    fun doCheckUpdateException(exception : XUpdateException)
    /**
     * 正在下载中
     */
    fun isDownloading()
    /**
     * 没有更新
     */
    fun noNewVersion()
    /**
     * 发现新版本
     */
    fun findNewVersion(updateController: IUpdateVersionController, versionEntity: VersionEntity)
    /**
     * 安装提示
     */
    fun installNewVersion(updateController: IUpdateInstallController, downloadEntity: DownloadEntity)
    /**
     * 下载应用前调用
     */
    fun doDownloadApkBefore()
    /**
     * 下载应用后调用
     */
    fun doDownloadApkAfter()
    /**
     * 下载错误
     */
    fun doDownloadApkException(exception: XUpdateException)
    /**
     * 下载中
     * @param progress 当前进度[0-100]
     * @param current 当前进度
     * @param total 下载总进度
     */
    fun doDownloadApkProgress(progress : Int,current : Long,total : Long)
}